package com.hanvon.core;

import android.graphics.Bitmap;

public class HWColorPen {

    static {
        try {
            System.loadLibrary( "hw_colorpen" );
            //LibPath.load("com.hanvon.test", "jni_hwcolorpen");
        } catch ( UnsatisfiedLinkError e ) {
            e.printStackTrace( );
        } catch ( Exception e ) {
            e.printStackTrace( );
        }
    }

    /**
     * 画图预处理函数
     * 调用时机:在画图窗口建立时，调用此函数
     * 
     * @param nWight
     *            画图区域的宽度
     * @param nHeight
     *            画图区域的高度
     * @param pDrawMemory
     *            图片原始像素
     * @return 操作是否成功
     */
    public native static boolean initializeEx(int nWidth, int nHeight, int[] pDrawMemory );
    

    /**
     * 汉王画笔属性设置函数；
     * 
     * @param nAntiLevel
     *            反走样级别，范围为[0—3]，0表示不反走样,HWPEN_SetPen()函数里nPenStyle才生效,级别越高，反走样效果越好；
     * @param nPenStyle
     *            画笔风格　在不反走样时生效,1=铅笔, 2=钢笔,　3=毛笔，4=蜡笔
     * @param nColorType
     *            颜色类型　( 0-蓝色，1-绿色，2-青色，3-红色，4-粉红色，5-黄色，6-黑色，7-深蓝色
     *            8-橄榄色，9-浅蓝色，10-栗色，11-紫色，12-暗黄色，13-银灰色，14-黑灰色)
     * @param nPenWidth
     *            画笔宽度[1, 5]，值越大笔形越粗
     * @param nColorRate
     *            彩笔颜色变化速率，[10, 80]，值越大变化越快
     */
    public native static void setPen( int nAntiLevel, int nPenStyle, int nColorType, int nPenWidth, int nColorRate );
    
    /**
     * 采样点处理函数
     * 说明：在MouseUp也调用一次这个函数drawLineEx(-100，-100, -100f);，参数赋(-100,-100,-100f)表抬笔
     * 
     * @param x
     *            当前采样点 X 坐标          
     * @param y
     *            当前采样点 Y 坐标           
     * @param pressure
     * 
     *            当前采样点 压感值
     * @param pRect
     *            返回值，此次对像素点的操作区域，可当作裁减区做刷新区域   
     *             
     * @param points
     *            返回值，此次插值的补点信息
     */
    public native static void drawLineEx( int x, int y, float pressure, int[] pRect, float[] points );

}
